package(
    default_visibility = ["//visibility:public"],
    licenses = ["notice"],
)

cc_library(
    name = "distance_measure_base",
    srcs = ["distance_measure_base.cc"],
    hdrs = ["distance_measure_base.h"],
    tags = ["local"],
    deps = [
        "//scann/data_format:datapoint",
        "//scann/proto:distance_measure_cc_proto",
        "//scann/utils:types",
    ],
)

cc_library(
    name = "distance_measures",
    srcs = ["distance_measure_factory.cc"],
    hdrs = [
        "distance_measure_base.h",
        "distance_measure_factory.h",
        "distance_measures.h",
    ],
    tags = ["local"],
    deps = [
        "//scann/data_format:datapoint",
        "//scann/distance_measures/one_to_one:cosine_distance",
        "//scann/distance_measures/one_to_one:dot_product",
        "//scann/distance_measures/one_to_one:hamming_distance",
        "//scann/distance_measures/one_to_one:jaccard_distance",
        "//scann/distance_measures/one_to_one:l1_distance",
        "//scann/distance_measures/one_to_one:l2_distance",
        "//scann/distance_measures/one_to_one:limited_inner_product",
        "//scann/distance_measures/one_to_one:nonzero_intersect_distance",
        "//scann/proto:distance_measure_cc_proto",
        "//scann/utils:types",
    ],
)
